Skip to main content

Update heights of building structures

Deven Mistry -- 08/23/2022

For Absecon Island

Trim and add damages

  1. Use the CLI script to trim and add damages to the CityGML files for Absecon Island.
  2. There are 2 tiles which lie inside the bounding box given by Dick; NewJersey-34001-001.gml and NewJersey-34001-002.gml
  3. Once these CityGML files are trimmed (and modded), the building structures are appended manually using VSCode to create NewJersey-34001-00X_modded.gml.
  4. This modded file is then uploaded to Cesium Ion for producing 3D Tiles.

Getting the new heights

Dealing with geojson

  1. Convert the modded CityGML file NewJersey-34001-00X_modded.gml to geojson (NewJersey-34001-00X_modded.geojson)so that, it can be read with geopandas for further processing.
  2. Read the geojson in Google Colab using geopandas
  3. Extract the columns of gml_id, latitude, longitude and height from the geojson file
  4. ⚠️ The latitudes and longitudes are the building centroids.
  5. The CRS of the geojson is the EPSG:4979, hence it is reprojected to EPSG:6438 for further calculation.

Dealing with laz files (LiDAR Data)

  1. Read the laz files from Google Drive. The laz files for Absecon Island are stored at southern_nj/laz.
  2. The tiles while only lie inside the bounding box given by Dick are uploaded on Google Drive.
  3. The information for the extent of the LiDAR tile lies inside the XML files.
  4. The XML files are stored at the location, southern_nj/xml in Google Drive.
  5. The CRS of the LiDAR tile is EPSG:6527, hence we reproject it to EPSG:6438 for further calculation.

Pseudo-code for updating the heights

  1. Given a building centroid,
    1. find all tiles where any corner of a tile is closest to the building centroid
    2. from the resulting tileset, find the tile that the centroid lies inside
    3. for each tile
      1. find ymin, ymax, xmin, xmax
      2. find the tile where
        1. ymin < y-c < ymax and
        2. xmin < x-c < xmax

For Martin County